<?php
/**
 * @Name: UserTokenLogic.php
 * @Author: yashuai<1762910894@qq.com>
 */

namespace App\Http\Logic\Rbac;

use App\Http\Model\Rbac\NodeModel;
use HugCode\PhpUnits\InstanceTool;
use HugCode\PhpUnits\Frame\Cipher\TokenJwt;

class UserTokenLogic extends TokenJwt
{

    use InstanceTool;

    /**
     * @Desc 获取权限验证使用的菜单列表
     * @param int $userId
     * @return array
     * @author yashuai<1762910894@qq.com>
     */
    public function getNodeList(int $userId)
    {
        $joinSub = NodeModel::getUserNodeIDArray($userId);
        return NodeModel::query()->whereIn('NodeID', $joinSub)->pluck('EventType')->toArray();
    }

    /**
     * @Desc 关联权限
     * @return array
     * @author yashuai<1762910894@qq.com>
     */
    public function nodeRelationPower()
    {
        $power = [
            'index.*'                 => 'allow',  // 首页数据
            'users.menu-node'         => 'allow',  // 用户菜单
            'users.info'              => 'allow',  // 用户详情
            'users.reset-my-password' => 'allow',  // 重置自己的密码
            'role.node'               => ['node.index'], // 菜单接点
            'role.select'             => ['users.*'], // 角色下拉框
        ];
        $info  = [  // 有index权限就有info权限
            // 'material',
        ];
        return [$power, $info];
    }


}
